package com.msda.service.staff;

import com.msda.pojo.dto.PageDTO;
import com.msda.pojo.dto.TokenDTO;
import com.msda.pojo.dto.staff.FrozenUserDTO;
import com.msda.pojo.dto.staff.ResetPasswordDTO;
import com.msda.pojo.dto.staff.UserDTO;
import com.msda.pojo.dto.staff.UserLoginDTO;
import com.msda.pojo.entity.staff.Customer;
import com.msda.pojo.entity.staff.User;
import com.msda.pojo.vo.UserLoginVO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;
import java.util.zip.DataFormatException;

public interface UserService {
    String userRegister(UserDTO userDTO) throws IOException;

    Object getUser(String userId);


    Object deleteUser(List<String> userIds);


    Object updateUser(UserDTO userDTO) throws DataFormatException;


    UserLoginVO login(UserLoginDTO userLoginDTO);


    Long getAllStaffCount();

    Long getAllCustomerCount();


    List<User> getAllStaffPage(PageDTO pageDTO);

    List<Customer> getAllCustomerPage(PageDTO pageDTO);

    Object frozenUser(FrozenUserDTO frozenUserDTO);


    Object autoLogin(TokenDTO tokenDTO);

    Object userResetPassword(ResetPasswordDTO resetPasswordDTO);

    Object set_profilePicture(String id, MultipartFile image) throws IOException;

}
